package Control;

import Gestor.GestorBono;
import Clases.Bono;
import java.sql.Date;
import java.util.ArrayList;
import org.hibernate.HibernateException;

public class ControlBono {

    private static ControlBono instancia = null;
    private final GestorBono gestorB = GestorBono.obtenerInstancia();

    public static ControlBono obtenerInstancia() {
        if (instancia == null) {
            instancia = new ControlBono();
        }
        return instancia;
    }

    private ControlBono() {
    }

    public String insertarBono(Bono bonoNuevo) {
        String verificacion = String.valueOf(gestorB.insertar(bonoNuevo));
        return verificacion;
    }

    public Bono getBono(int codigo) {
        return gestorB.getBono(codigo);
    }

    public boolean eliminar(Long bono) {
        return gestorB.eliminar(bono);
    }

    public boolean actualizar(Bono bono) {
        return gestorB.actualizar(bono);
    }

    public ArrayList<Bono> getBonosPorCodigo(long codigo, Date fechaPagoInicio, Date fechaPagoFin) throws HibernateException {
        return gestorB.getBonosPorCodigo(codigo, fechaPagoInicio, fechaPagoFin);
    }

    public ArrayList<Bono> getBonosPorCedula(long cedula, Date fechaPagoInicio, Date fechaPagoFin) throws HibernateException {
        return gestorB.getBonosPorCedula(cedula, fechaPagoInicio, fechaPagoFin);
    }

    public ArrayList<Bono> getBonosPorCedulaHistoricos(Long numEmpleado, Date fechaPagoInicio, Date fechaPagoFin) {
        return gestorB.getBonosPorEmpleadoHistoricos(numEmpleado, fechaPagoInicio, fechaPagoFin);
    }
}
